A virtual network is a logical network overlaid on a physical network. A virtual network allows a virtual IP (Internet Protocol) address to be assigned to individual processes running on a computer or other electronic device. The use of a virtual network allows for an extension of the computer's physical resources since a virtual network's components such as processes are not restricted to a one-to-one relationship with the physical devices in the computer system and network. Messages may be sent to a process at a virtual IP address which is separate from the real IP address used by the network device upon which the process is executing.
The Address Resolution Protocol is used in the physical network to resolve a four byte (or sixteen bytes in the case IPV6) IP address into a six byte MAC (Media Access Control) address through the use of a lookup table. A MAC address is an address assigned to an interface for a physical component interfaced with the network. For example, an Ethernet card includes a unique MAC address which identifies the physical device on the network. Messages sent to an IP address are delivered to the resolved MAC address of the network connected piece of hardware. The message is then forwarded from the network interface identified by the MAC address to the destination application on the physical device. The Virtual Address Resolution Protocol (VARP) performs a function for the virtual network similar to that of the Address Resolution Protocol (ARP) in the physical network. VARP resolves a virtual IP address into a real IP address through the use of a lookup table. Once the real IP address corresponding to the virtual IP address has been determined, the real IP address may then be resolved through an ARP lookup into a MAC address. The message intended for the virtual IP address may is delivered to the network interface. The message is then forwarded from the MAC address to the real IP address where the header is stripped and and then forwarded to a virtual IP address destination.
Unfortunately, the current implementation of VARP is restricted to associating a single virtual IP address with a real IP address in a VARP lookup table. This limits the ability to send messages to distributed external virtual networks. Furthermore, virtual IP addresses are restricted to communicating with other virtual IP addresses as only virtual IP addresses are resolved during a VARP lookup.